The present invention relates generally to the field of telecommunications, and more particularly to a system and method for scheduling traffic for different classes of service.
Traditional switching systems comprising of a switch core, a customer interface and a service provider interface provide static allocation of resources. Thus, when two or more sources desire to provide data to the same destination port while at the same time providing a particular Quality of Service (QoS) or class of service, the sources are set up so that the sum of the bandwidths allocated to different sources is less than or equal to the bandwidth of the destination port. However, if one of the sources is utilizing only a part of the bandwidth allocated to it, there is no robust mechanism for the other sources to adjust their bandwidths in real time so as to utilize the maximum bandwidth of the destination port. Thus, the destination port is not utilized to its maximum capacity even though some sources of data may be operating at a lower bandwidth and there might be data available at these sources to allow them to utilize the destination port up to its maximum capacity.
As an example, if the destination port has a bandwidth of 10 Gbps and two sources are sending data to the destination port, the first source can be set to send data at say 3 Gbps and the second source can be set to send data at 7 Gbps. However, if the second source is only sending data at 1 Gbps there is no robust mechanism to allow the first source to adjust its data rate even though the first source may be capable of sending data at a higher rate. Thus, the destination port remains underutilized.
Accordingly a system and method for maximum utilization of bandwidth of a resource by incrementally varying in real time the allocated bandwidth per source queue per class of service based at least in part on the current status of a destination virtual output queue fill level is disclosed. By varying the permissible bandwidth incrementally not only is the available bandwidth utilized optimally but also a desired QoS is maintained.
The present invention contemplates adjusting the permissible bandwidth incrementally in order to avoid data loss. For example, if upon detection that one of the sources is utilizing only 1 Gbps of its allocated 7 Gbps bandwidth, the other source is allowed to increase its data rate from 3 Gbps to 9 Gbps and the first source is simultaneously allowed to make full use of its allocated 7 Gbps, the capacity of the destination port would be exceeded resulting in loss of data. Consequently, the QoS is not maintained even though the maximum available bandwidth is utilized. Incremental adjustment of the bandwidth over time eliminates this problem of data loss.
For example, one aspect of the invention includes a method for scheduling traffic through a switching system, the method comprising allocating at least a portion of a bandwidth associated with an output port to a source queue; permitting the source queue to utilize at least a portion of the allocated bandwidth in a credit window; and incrementally adjusting the allocated bandwidth of the source queue based at least in part on the fill level of at least one output queue associated with the output port.
Another aspect of the invention includes a system for providing optimum bandwidth utilization, said system comprising at least one line card; at least one switch fabric coupled to the line card; and at least one service card coupled to the switch fabric. The service card includes a memory element, wherein the memory element is logically divided into one or more source queues. The service card also includes at least one traffic manager operable to schedule traffic through the system for a plurality of classes of service, wherein the traffic manager provides optimal utilization of bandwidth of an output port by incrementally adjusting in real time an allocated bandwidth per source queue per class of service. The incremental adjustment of the allocated bandwidth is based at least in part on the fill level of one or more output queues associated with the output port.
Other aspects and features of the invention will become apparent to those ordinarily skilled in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying figures.